1. Field of the Invention
This invention relates to computer systems, and more particularly to the localization of computer software products.
2. Description of the Related Art
The globalization of a software product involves the identification of localizable files of the software product that require custom localization for a particular language or languages. The localizable files may include a portion of or all of the files that are associated with the product. Text content of these localizable files must be translated into target languages via a localization process. Other elements may need to be localized as well. The localized files then must be included with, plugged into or built into a localized version of the software product.
Often, these localizable files include files of different file formats. Exemplary file formats may include, but are not limited to, markup language file formats (e.g., HTML and XML), Java® Server Pages (JSP), programming language source code files, Property files, JPG files, custom Message files, resource files, etc. In addition to other content, these files may include localizable content that needs to be translated. In conventional localization mechanisms, it is difficult to separate localizable content out of the localizable files, and is equally difficult to merge the translations of the localizable content back into the files while maintaining the integrity of the file structure. For example, when localizing a product that uses JSP files, it is essential to extract localizable content out of a JSP file, have the extracted content translated, and merge the translations back into the JSP file without breaking the tags and the format integrity of the JSP file. Similar difficulties exist in localizing HTML, XML, and other file formats as well.
There are two conventional approaches to a localization process for translating localizable elements in files. The first approach is to request language translators to translate the localizable files manually. The second approach is to use computer programs to automate (a portion of) the translation process. In the first approach, language translators conventionally require translation guides to guide them on how to translate each file while preserving the integrity of the format. Even so, the translation process is subject to human error. In addition, writing an effective translation guide is a non-trivial task. Translation guides for files of various file formats may be misunderstood by language translators that may not have the necessary technical background. This has been an error-prone approach as often the wrong strings are localized and/or tags or other elements of the file format that is not to be translated is damaged or deleted from the file, hence losing the structure of the file, and requiring human effort to fix and test the files.
In the second approach, special computer programs have been written to at least partially process different formats of localizable files. These conventional programs typically include mechanisms to programmatically parse the files according to the file format in an attempt to locate and extract localizable content. However, these conventional programs do not have the ability to process/parse all file formats, and require additional and custom programming effort to add support for new file formats or to change the processing of existing file formats, if the file formats are modified. Further, conventional localization programs tend to be error-prone and thus often are not guaranteed to extract localizable elements from the files perfectly. Typically, the parsed-out content may then be sent to human translators for translation.
Because of the above problems in the two conventional approaches, localization engineers typically must carefully scrutinize and test all translated files before bundling the files into the software product being localized. This tends to be a time-consuming and error-prone process. Additional testing may be required to verify the localized content in the localized product. In addition, localizing the software product to each of one or more additional languages typically requires as much effort for each additional language as did localizing the product to a first language. The localization effort put into localizing a product for one language cannot easily be leveraged across additional languages. In addition, the localization effort put into localizing one product cannot easily be leveraged to localize another product.
In conventional approaches to localization, when a product is to be localized, the localizable files or extracted localizable content are gathered from the product development team and sent to human translators. When the files are sent for translation, the development team may still be modifying the original files. Human translation of the files may take days or weeks. By the time the translated files are received back from the translators, the files may be obsolete. In some cases, to deal with this, the product development team may be given a “freeze” date; after that date, the team cannot change any files that require localization so that there is time in the project to translate. Thus, the noted problems in conventional product localization methods may cause costly delays in the product development process.